@echo off

:: 设置中文显示
chcp 65001 >nul

:: 检查Python是否安装
where python >nul 2>nul
if %ERRORLEVEL% NEQ 0 (
    echo 错误: 未找到Python。请先安装Python并添加到PATH环境变量。
    pause
    exit /b 1
)

echo 检测到Python已安装

:: 创建虚拟环境
if not exist venv (
    echo 创建虚拟环境...
    python -m venv venv
    if %ERRORLEVEL% NEQ 0 (
        echo 错误: 创建虚拟环境失败
        pause
        exit /b 1
    )
)

:: 激活虚拟环境
echo 激活虚拟环境...
call venv\Scripts\activate.bat
if %ERRORLEVEL% NEQ 0 (
    echo 错误: 激活虚拟环境失败
    pause
    exit /b 1
)

:: 安装依赖
if exist requirements.txt (
    echo 安装依赖包...
    pip install -r requirements.txt --no-cache-dir -i https://mirrors.aliyun.com/pypi/simple/
    if %ERRORLEVEL% NEQ 0 (
        echo 错误: 安装依赖失败
        pause
        exit /b 1
    )
)

:: 检查模型是否存在
if not exist models\mobile_sam.pth (
    echo 下载SAM模型...
    python run_server.py --download-model mobile_sam
    if %ERRORLEVEL% NEQ 0 (
        echo 错误: 下载模型失败
        pause
        exit /b 1
    )
)

:: 安装python-multipart依赖
pip install python-multipart --no-cache-dir -i https://mirrors.aliyun.com/pypi/simple/
if %ERRORLEVEL% NEQ 0 (
    echo 错误: 安装python-multipart依赖失败
    pause
    exit /b 1
)

:: 设置服务端口（与config.py保持一致）
set PORT=8077

echo 启动SAM服务...
python run_server.py --mode http
if %ERRORLEVEL% NEQ 0 (
    echo 错误: 启动服务失败
    pause
    exit /b 1
)

:: 等待服务启动
ping 127.0.0.1 -n 5 >nul

echo 服务已启动，访问地址: http://localhost:%PORT%/docs


:: 保持窗口打开
echo 服务已启动。按任意键关闭窗口...
pause